home *** CD-ROM | disk | FTP | other *** search
/ The Interactive Old Testament / The Interactive Old Testament.iso / oldtest.ms_ / oldtest.ms
Text File  |  1993-02-05  |  7KB  |  249 lines

  1. '**************************************************************************
  2. '*                       MSSetup Toolkit Sample 1
  3. '**************************************************************************
  4.  
  5. '$DEFINE DEBUG  ''Define for script development/debugging
  6.  
  7. '$INCLUDE 'setupapi.inc'
  8. '$INCLUDE 'msdetect.inc'
  9.  
  10. ''Dialog ID's
  11. CONST WELCOME       = 100
  12. CONST ASKQUIT       = 200
  13. CONST DESTPATH      = 300
  14. CONST EXITFAILURE   = 400
  15. CONST EXITQUIT      = 600
  16. CONST EXITSUCCESS   = 700
  17. CONST OPTIONS       = 800
  18. CONST APPHELP       = 900
  19. CONST BADPATH       = 6400
  20.  
  21. ''Bitmap ID
  22. CONST LOGO = 1
  23.  
  24. GLOBAL DEST$        ''Default destination directory.
  25. GLOBAL OPTCUR$      ''Option selection from option dialog.
  26.  
  27. DECLARE SUB Install
  28. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  29.  
  30.  
  31. INIT:
  32.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  33.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  34.  
  35.     SetBitmap CUIDLL$, LOGO
  36.     SetTitle "Interactive Old Testament - Setup"
  37.  
  38.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  39.     IF szInf$ = "" THEN
  40.         szInf$ = GetSymbolValue("STF_CWDDIR") + "oldtest.INF"
  41.     END IF
  42.     ReadInfFile szInf$
  43.  
  44.     OPTCUR$ = "1"
  45.     DEST$ = "C:\OLDTEST"
  46.  
  47. '$IFDEF DEBUG
  48.     i% = SetSizeCheckMode(scmOnIgnore)    '' could use scmOff; def = scmOnFatal
  49.     WinDrive$ = MID$(GetWindowsDir, 1, 1)
  50.     IF IsDriveValid(WinDrive$) = 0 THEN
  51.         i% = DoMsgBox("Windows drive ('"+WinDrive$+"') is not a valid drive.", "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  52.         GOTO QUIT
  53.     END IF
  54. '$ENDIF ''DEBUG
  55.  
  56.  
  57. WELCOME:
  58.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
  59.     IF sz$ = "CONTINUE" THEN
  60.         UIPop 1
  61.     ELSE
  62.         GOSUB ASKQUIT
  63.         GOTO WELCOME
  64.     END IF
  65.  
  66.  
  67. 'OPTION:
  68. '    SetSymbolValue "RadioDefault", OPTCUR$
  69. 'OPTL1:
  70. '    sz$ = UIStartDlg(CUIDLL$, OPTIONS, "FRadioDlgProc", APPHELP, HELPPROC$)
  71. '    OPTCUR$ = GetSymbolValue("ButtonChecked")
  72. '
  73. '    IF sz$ = "CONTINUE" THEN
  74. '        UIPop(1)
  75. '    ELSEIF sz$ = "REACTIVATE" THEN
  76. '        GOTO OPTL1
  77. '    ELSE
  78. '        GOSUB ASKQUIT
  79. '        GOTO OPTION
  80. '    END IF
  81.  
  82.  
  83. GETPATH:
  84.     SetSymbolValue "EditTextIn", DEST$
  85.     SetSymbolValue "EditFocus", "END"
  86. GETPATHL1:
  87.     sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
  88.     DEST$ = GetSymbolValue("EditTextOut")
  89.  
  90.     IF sz$ = "CONTINUE" THEN
  91.         IF IsDirWritable(DEST$) = 0 THEN
  92.             GOSUB BADPATH
  93.             GOTO GETPATHL1
  94.         END IF
  95.         UIPop 1
  96.     ELSEIF sz$ = "REACTIVATE" THEN
  97.         GOTO GETPATHL1
  98.     ELSEIF sz$ = "BACK" THEN
  99.         UIPop 1
  100. '        GOTO OPTION
  101.         GOTO WELCOME
  102.     ELSE
  103.         GOSUB ASKQUIT
  104.         GOTO GETPATH
  105.     END IF
  106.  
  107.  
  108.     Install
  109.  
  110.  
  111. QUIT:
  112.     ON ERROR GOTO ERRQUIT
  113.  
  114.     IF ERR = 0 THEN
  115.         dlg% = EXITSUCCESS
  116.     ELSEIF ERR = STFQUIT THEN
  117.         dlg% = EXITQUIT
  118.     ELSE
  119.         dlg% = EXITFAILURE
  120.     END IF
  121. QUITL1:
  122.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  123.     IF sz$ = "REACTIVATE" THEN
  124.         GOTO QUITL1
  125.     END IF
  126.     UIPop 1
  127.  
  128.     END
  129.  
  130. ERRQUIT:
  131.     i% = DoMsgBox("Setup sources were corrupted, call (206) 392-7266!", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  132.     END
  133.  
  134.  
  135.  
  136. BADPATH:
  137.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  138.     IF sz$ = "REACTIVATE" THEN
  139.         GOTO BADPATH
  140.     END IF
  141.     UIPop 1
  142.     RETURN
  143.  
  144.  
  145.  
  146. ASKQUIT:
  147.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  148.  
  149.     IF sz$ = "EXIT" THEN
  150.         UIPopAll
  151.         ERROR STFQUIT
  152.     ELSEIF sz$ = "REACTIVATE" THEN
  153.         GOTO ASKQUIT
  154.     ELSE
  155.         UIPop 1
  156.     END IF
  157.     RETURN
  158.  
  159.  
  160.  
  161. '**
  162. '** Purpose:
  163. '**     Builds the copy list and performs all installation operations.
  164. '** Arguments:
  165. '**     none.
  166. '** Returns:
  167. '**     none.
  168. '*************************************************************************
  169. SUB Install STATIC
  170.  
  171.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  172.     CreateDir DEST$, cmoNone
  173.  
  174.         ' 
  175.         ' Setup log file
  176.         '    
  177.     OpenLogFile MakePath(DEST$, "LOGFILE.OUT"), 0
  178.     WriteToLogFile ""
  179.     WriteToLogFile "  User chose as destination directory: '" + DEST$ + "'"
  180.     WriteToLogFile "  User chose option: '" + OPTCUR$ + "'"
  181.     WriteToLogFile ""
  182.     WriteToLogFile "May have had to create the directory: " + DEST$
  183.     WriteToLogFile ""
  184.  
  185.         '
  186.         ' Copy Files
  187.         '
  188.     AddSectionFilesToCopyList "Files", SrcDir$, DEST$
  189.     CopyFilesInCopyList
  190.  
  191.         '
  192.         ' Make Changes to Win.ini
  193.         '
  194.     CreateIniKeyValue "WIN.INI", "READER", "Path",   SrcDir$+";"+SrcDir$+"timeline;"+SrcDir$+"music;"+SrcDir$+"stories", cmoOverwrite
  195.     CreateIniKeyValue "WIN.INI", "READER", "config",  "reader.cnf", cmoOverwrite
  196.     CreateIniKeyValue "WIN.INI", "READER", "interps", "reader.s", cmoOverwrite
  197.  
  198.     CreateIniKeyValue "WIN.INI", "READERFILTERS", "Guide TXT Filter", "GUIDETXT.DLL, TXT", cmoOverwrite
  199.     CreateIniKeyValue "WIN.INI", "READERFILTERS", "Guide RTF Filter", "GUIDERTF.DLL, RTF", cmoOverwrite
  200.     CreateIniKeyValue "WIN.INI", "READERFILTERS", "Guide WMF Filter", "GUIDEWMF.DLL, WMF", cmoOverwrite
  201.     CreateIniKeyValue "WIN.INI", "READERFILTERS", "Guide TIF Filter", "GUIDETIF.DLL, TIF", cmoOverwrite
  202.     CreateIniKeyValue "WIN.INI", "READERFILTERS", "Guide PCX Filter", "GUIDEPCX.DLL, PCX", cmoOverwrite
  203.     CreateIniKeyValue "WIN.INI", "READERFILTERS", "Guide PCC Filter", "GUIDEPCX.DLL, PCC", cmoOverwrite
  204.     CreateIniKeyValue "WIN.INI", "READERFILTERS", "Guide MSP Filter", "GUIDEMSP.DLL, MSP", cmoOverwrite
  205.     CreateIniKeyValue "WIN.INI", "READERFILTERS", "Guide BMP Filter", "GUIDEBMP.DLL, BMP", cmoOverwrite
  206.  
  207.         '
  208.         ' Create Special oldtest.ini file for BOB
  209.         '
  210.     CreateIniKeyValue MakePath(DEST$,"oldtest.ini"), "Install Dir", DEST$, "", cmoOverwrite
  211.  
  212.  
  213.         '
  214.         ' Create Program Manager Group and Add Program Icons to Group
  215.         '
  216.     CreateProgmanGroup "Azeroth", "", cmoNone
  217.     ShowProgmanGroup   "Azeroth", 1, cmoNone
  218.     CreateProgmanItem  "Azeroth", "Interactive Old Testament", MakePath(DEST$,"reader.exe"), MakePath(DEST$,"oldtest.ico"), cmoOverwrite
  219. '    CreateProgmanItem  "Azeroth", "Read Me", "notepad.exe "+MakePath(DEST$,"readme.txt"), "", cmoOverwrite
  220.  
  221.     CloseLogFile
  222.  
  223. END SUB
  224.  
  225.  
  226.  
  227. '**
  228. '** Purpose:
  229. '**     Appends a file name to the end of a directory path,
  230. '**     inserting a backslash character as needed.
  231. '** Arguments:
  232. '**     szDir$  - full directory path (with optional ending "\")
  233. '**     szFile$ - filename to append to directory
  234. '** Returns:
  235. '**     Resulting fully qualified path name.
  236. '*************************************************************************
  237. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  238.     IF szDir$ = "" THEN
  239.         MakePath = szFile$
  240.     ELSEIF szFile$ = "" THEN
  241.         MakePath = szDir$
  242.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  243.         MakePath = szDir$ + szFile$
  244.     ELSE
  245.         MakePath = szDir$ + "\" + szFile$
  246.     END IF
  247. END FUNCTION
  248.  
  249.